package com.miplus.ccrm.core.api.bailian.model;
import lombok.Data;

//先注释一部分
@Data
public class AgentRequest {
    /**
     * 用户问题（必选）
     * 输入当前期望应用执行的指令prompt，用来指导应用生成回复。
     */
    private String prompt;
    /**
     * 用于对轮对话session_id（可选）
     * 历史对话的唯一标识。
     * 传入session_id时，请求将自动携带云端存储的对话历史。具体请参考多轮对话。
     * 传入session_id时，prompt为必传。
     * 若同时传入session_id和messages，则优先使用传入的messages。
     */
    private String sessionId;
    /**
     * 是否增量流式输出（可选）
     * 在流式输出模式下是否开启增量输出。
     * 参数值：
     * false（默认值）：每次输出当前已经生成的整个序列，最终输出为完整结果。
     * true：增量输出，即后续输出内容不包含已输出的内容。您需要实时地逐个读取这些片段以获得完整的结果。
     */
    private Boolean incrementalOutput;

    /**
     * 应用aegentId（必选）
     */
    private String appId;


    /**
     * 渠道，是voice还是chat
     */
    private String channel;


    //暂时注释下面的4个字段，是八达岭需要的。


//    /**
//     * caseid,一通电话唯一值
//     */
//    private String caseId;
//
//    /**
//     * callid,呼叫id
//     */
//    private String callId;
//
//    /**
//     * 主叫号码
//     */
//    private String aniPhone;
//
//    /**
//     * 被叫号码
//     */
//    private String dnisPhone;


//    /**
//     * 消息列表（可选）
//     * 由历史对话组成的消息列表。
//     * 若您需要自行管理对话历史以实现多轮对话，可以通过 messages 传递历史对话信息。具体请参考多轮对话。
//     * 传入messages时，无需传入prompt，若二者同时传入，则prompt会被追加到messages列表的最后，作为补充信息。
//     * 若同时传入session_id和messages，则优先使用传入的messages。
//     * 目前仅智能体应用和对话型工作流应用支持多轮对话。
//     * 通过HTTP调用时，请将messages 放入 input 对象中。
//     * 使用该参数，Python Dashscope SDK的版本至少应为1.20.14，Java Dashscope SDK的版本至少应为2.17.0。
//     */
//    private List<Map<String, Object>> messages;
//    /**
//     * 工作空间标识（可选）
//     * 调用子业务空间的应用时需传递workspace标识，调用默认业务空间的应用时无需传递workspace。
//     * 在子业务空间里，点击我的应用页面的应用卡片上的调用，即可在应用API代码中获取子业务空间的workspace标识，具体请参考获取Workspace ID。
//     * 通过HTTP调用时，请指定Header中的 X-DashScope-WorkSpace。
//     */
//    private String workspace;
//    /**
//     * 是否流式输出回复（可选）
//     * 参数值：
//     * false（默认值）：模型生成完所有内容后一次性返回结果。
//     * true：边生成边输出，即每生成一部分内容就立即输出一个片段（chunk）。
//     * Java SDK中为streamCall。通过HTTP调用时，请指定Header中的 X-DashScope-SSE 为 enable。
//     */
//    private Boolean stream;
//    /**
//     * 工作流应用的流式输出模式（可选）
//     * 具体使用方法请参考流式输出。
//     * 参数值及使用方法如下：
//     * full_thoughts（默认值）：
//     * 描述：所有节点的流式结果在thoughts字段中输出。
//     * 要求：同时必须要设置has_thoughts为True。
//     * agent_format：
//     * 描述：使用与智能体应用相同的输出模式。
//     * 效果：在控制台应用中，可选择打开指定节点的结果返回开关，则该节点的流式结果将在output的text字段中输出。
//     * 场景：适合只关心中间指定节点输出的场景。
//     * 结果返回开关当前仅支持文本转换节点、大模型节点以及结束节点（结束节点默认打开）。
//     * 在并行节点中同时开启结果返回开关，会导致内容混杂。因此，开启开关的节点需要有明确的输出先后顺序。
//     * Java SDK中暂未开放此参数。通过HTTP调用时，请将flow_stream_mode放入parameters对象中。
//     */
//    private String flowStreamMode;
//    /**
//     * 示例如：biz_params = {"model": "qwen-max/deepseek-r1"}。
//     * 模型参数。
//     */
//    private Map<String, Object> bizParams;
//    /**
//     * 长期记忆体ID（可选）
//     * 在百炼控制台应用中打开长期记忆开关并发布应用，通过指定 memory_id 调用应用时，系统依据用户偏好信息自动构建和保存长期记忆。后续使用同一 memory_id 调用时，系统会恢复这些长期记忆，并与最新的用户消息合并提供给模型处理。
//     * memory_id的创建方法请参见CreateMemory。详细调用方法请参见应用调用长期记忆。
//     * Java SDK中为memoryId。通过HTTP调用时，请将 memory_id 放入input 对象中。
//     * 目前仅智能体应用支持长期记忆。
//     */
//    private String memoryId;
    /**
     * 是否输出插件调用、知识检索的过程，或DeepSeek-R1 类模型思考过程（可选）
     * 参数值：
     * True：输出在thoughts字段中。
     * False（默认值）：不输出。
     */
        private Boolean hasThoughts;
//    /**
//     * 图片链接列表（可选）
//     * 用于传递图片链接。
//     * 支持以下两种使用场景：
//     * 图片检索：在智能体应用中，根据上传的图片链接，检索包含图片链接的结构化知识库。
//     * 图片理解：在通义千问VL模型的智能体应用中，还可以直接提问图片内容。
//     * "image_list" : ["https://example.com/images/example.jpg"]
//     * #这是一个虚构的URL，请替换为实际存在的图片URL
//     * 可以是多个，每个图片链接之间通过英文逗号分隔。
//     * Java SDK中为images。通过HTTP调用时，请将 image_list 放入 input 对象中。
//     */
//    private List<String> imageList;
//    /**
//     * 用于配置与RAG相关的参数（可选）
//     * 包括但不限于对指定的知识库或文档进行检索。详细用法和规则请参见检索知识库。
//     * Java SDK中为ragOptions。通过HTTP调用时，请将 rag_options 放入 parameters 对象中。
//     */
//    private List<Map<String, Object>> ragOptions;
}
